package org.ciallo.simplemusicplayer.viewmodel;

import android.app.Application;
import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import org.ciallo.simplemusicplayer.data.model.Song;
import org.ciallo.simplemusicplayer.data.repository.SongRepository;

/**
 * @author Jukomu
 * @Description: 用于处理单首歌曲相关数据和逻辑的 ViewModel
 * @Package: org.ciallo.simplemusicplayer.viewmodel
 * @Project: SimpleMusicPlayer
 * @name: SongViewModel
 * @Date: 2025/5/31-00:53
 * @Filename: SongViewModel
 */
public class SongViewModel extends AndroidViewModel {

    private final SongRepository songRepository;

    /**
     * 构造函数。
     * @param application Application 实例。
     */
    public SongViewModel(@NonNull Application application) {
        super(application);
        songRepository = new SongRepository(application);
    }

    /**
     * 根据歌曲ID获取歌曲的详细信息。
     * @param songId 要获取详情的歌曲ID。
     * @return LiveData 包装的 Song 对象。如果歌曲不存在，LiveData 将包含 null。
     */
    public LiveData<Song> getSongById(long songId) {
        return songRepository.getSongById(songId);
    }

    /**
     * (未来可以添加) 删除指定ID的歌曲从数据库。
     * @param songId 要删除的歌曲ID。
     */
    public void deleteSongFromDatabase(long songId) {
        // SongRepository 需要一个相应的方法，该方法调用 songDao.deleteSongById(songId)
        // songRepository.deleteSongById(songId); // 假设 SongRepository 有这个方法
        // 这里的实现需要在 SongRepository 中补充
    }
}

